<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var value = -1;
        Object.defineProperty(window, 'a', {
            get() {
                return value += 1;
            }
        })
        console.log(a)
        if (a === 0 && a === 1) {
            console.log('success');
        }


        var obj = { a: 1 };


        // 第三个参数：
        //   配置一个对象的属性
        //     是否可以被改变
        //     是否可以被遍历
        //     是否被删除 。。。
        //   配置访问器属性
        //     get(){}   这个函数会在属性被访问的时候调用
        //     set(val) {}


        Object.defineProperty(obj, 'name', {
            value: 'yy',
            configurable: false,  // 属性是否可以被删除  --- 此配置不可逆(一旦定义了后面不能改变)
            enumerable: true,   // 设定此属性是否可以被枚举(遍历)
            writable: false,   // 不可以改写值

        })

        console.log(obj)

        obj.name = 3;

        delete obj['name'];
        console.log(obj)




    </script>
</body>

</html>